A network typically includes a collection of routers interconnected with each other. From a data packet's point of view, each router is a stepping stone toward its destination. To traverse the network from its source to its destination, a data packet engages in a sequence of “hops” from one router to the next.
Each router in a network is a device having an input side with at least one input connected to an adjacent router and an output side with several outputs, each of which is connected to an adjacent router. The router receives a data packet through its input and forwards the data packet to an adjacent router through one of its several outputs. The function of a router is to decide, for each data packet arriving at its input, which of the several adjacent routers it is to relay the data packet to. Typically, a router accomplishes this by examining a header associated with the data packet to determine that data packet's destination. Using a look-up table, the router then determines which of the adjacent routers on its output side is the appropriate router for the data packet's next hop toward its destination.
In order for a network to operate correctly, it is preferable that each router understand the information contained in the header associated with the data packet. This can create difficulties when, in order to reach its destination, the data packet traverses a network in which the routers are unable to recognize the information contained within the header. This can occur when a router understands only a protocol other than that used to generate the header.
An MPLS (“multi-protocol label switching”) network is based on the recognition that information for relaying the data packet on its next hop need be understood only by two adjacent routers. In an MPLS network, each data packet is encapsulated by a label. Each router on an MPLS network operates by receiving the labeled data packet through its input side and determining, on the basis of information in the label, which router to relay the data packet to on its output side. Then, the router switches the label with a new label containing information that can be understood by the next router to receive the data packet. The label is thus of only local significance and is typically switched to a new label before every hop. Because a router on an MPLS network switches the label associated with the data packet, such a router is referred to as a “label-switching router” or “LSR.”
It is apparent that the LSRs in an MPLS network need not recognize or understand the header of the data packet. The LSRs need only recognize labels. As a result, a data packet can readily traverse networks in which the routers are incapable of recognizing its header. All that is necessary is that each router in the network be a label switching router. It is for this reason that an MPLS network is a “multi-protocol” network.